home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / terms / kermit / b / ikxker.ins < prev    next >
Encoding:
Text File  |  1993-06-29  |  31.4 KB  |  684 lines

  1. IBM System/370 CICS Kermit 4.2.n installation instructions
  2.                      (1993 June)
  3.  
  4. CICS is commonly run under both MVS and VSE, and CICS Kermit may differ
  5. slightly between the two systems.  Indeed, the installation procedures
  6. differ substantially between the two, but the same basic pattern holds.
  7. In the following procedure, parallel instructions will be given for both
  8. systems wherever the operation differs.  There is, as yet, no procedure
  9. for installation under VM.  Kermit-CICS has been installed and run under
  10. versions 1.6, 1.7, 2.1, and 3.1 of CICS; it is not known what changes,
  11. if any, are necessary to run it under other versions.
  12.  
  13.                   * * Installation Procedure * *
  14.  
  15. 1) Allocate disk storage to contain the source and executable code.
  16.  
  17.                         V S E   o n l y
  18.    The procedure described here assumes that two VSE sublibraries will
  19.    be used.  One sublibrary, called the "base" library, will contain
  20.    unmodified Kermit source, as received from Columbia.  The other
  21.    sublibrary, called the "work" library, will contain copies of the
  22.    base library modules to be modified by the LIBR "UPDATE" command.
  23.    Both libraries may be used for other purposes, since the Kermit
  24.    maintenance affects only the named modules.  It is strongly
  25.    recommended that the work library be set up for automatic space reuse
  26.    (the default), as the update process produces interim copies of each
  27.    module, which are successively replaced.
  28.  
  29.    The Kermit update file (IKXKER.UPD) and the VSE update convertor
  30.    (IKXTRN.ASM) can be stored in either of these libraries or in a third
  31.    library; or they can be submitted as SYSIPT data from an external
  32.    system.  The Kermit executable phase itself must also, of course, be
  33.    stored in a library; again, this may be the same as one of the others
  34.    already discussed.  The JCL given below assumes that both IKXTRN.ASM
  35.    and IKXKER.UPD are stored in VSE libraries.
  36.  
  37.                         M V S   o n l y
  38.    The allocation sizes here are based on "typical" disk models; each
  39.    dataset should be roughly 200K in extent.  You may wish the primary
  40.    space parameter to match that size.  However, if you wish to reuse
  41.    either dataset for successive test versions or new releases, you must
  42.    be sure to make a generous space allocation.  Both libraries may be
  43.    compressed from time to time to make "dead" storage available, but
  44.    the load library will tend to grow as new releases are added.  The
  45.    load library must be included in the DFHRPL concatenation, since it
  46.    will contain the Kermit load module.  If you have TSO available, it
  47.    is convenient to use the following commands to allocate the datasets.
  48.    Note: throughout these instructions, the block size used for objects
  49.    is 1680, the traditional maximum -- feel free to change it to the
  50.    customary value at your site.
  51.  
  52.    ATTR K1OBJ RECFM(FB) LRECL(80) BLKSIZE(1680) DSORG(PO)
  53.    ALLOC DSN(KERMIT.CICS.OBJ) USING(K1OBJ) SPACE(20,20) TRACKS DIR(5)
  54.    ATTR K1LOD RECFM(U) BLKSIZE(6144) DSORG(PO)
  55.    ALLOC DSN(KERMIT.CICS.LOAD) USING(K1LOD) SPACE(20,20) TRACKS DIR(10)
  56.  
  57.    The corresponding JCL is:
  58.  
  59.    //     EXEC PGM=IEFBR14
  60.    //K1OBJ  DD DCB=(RECFM=FB,LRECL=80,BLKSIZE=1680,DSORG=PO),
  61.    //          DSN=<user>.KERMIT.CICS.OBJ,SPACE=(TRK,(20,20,5)),
  62.    //          DISP=(NEW,CATLG),UNIT=whatever
  63.    //K1LOD  DD DCB=(RECFM=U,BLKSIZE=6144,DSORG=PO),
  64.    //          DSN=<user>.KERMIT.CICS.LOAD,SPACE=(TRK,(20,20,10)),
  65.    //          DISP=(NEW,CATLG),UNIT=whatever
  66.  
  67. 2) Get the necessary files from the Kermit distribution tape or from
  68.    BITNET KERMSRV or elsewhere into your disk area.  Note that many of
  69.    the files are generic for Kermit-370 and may already be available to
  70.    you.  As distributed by Columbia, the files are named as follows,
  71.    almost all with prefix IKX or IK0 (I K Zero).  Note that nearly all
  72.    of these files have records no longer than 80 bytes.  The one
  73.    exception is IKXKER.HLP, which has 96-byte records.
  74.  
  75.    IKXKER.BWR  A "beware" file, listing known bugs, problems, and fixes
  76.    IKXKER.DOC  CICS Kermit User's Guide, plain text
  77.    IKXKER.HLP  Kermit-CICS online help files
  78.    IKXKER.INS  Kermit-CICS installation instructions (this file)
  79.    IKXKER.UPD  Updates for CICS version of Kermit-370
  80.    IKXMAC.ASM  Assembler source for CICS-specific macros
  81.    IKXUTL.ASM  Assembler source for CICS-specific routines
  82.    IK0CMD.ASM  Assembler source for command handler
  83.    IK0COM.ASM  Assembler source for global code
  84.    IK0DEF.ASM  Assembler source for parameter definitions
  85.    IK0DOC.ASM  Assembler source with brief history
  86.    IK0KAN.ASM  Assembler source for Kanji character translation
  87.    IK0MAC.ASM  Assembler source for generic Kermit macros
  88.    IK0MAI.ASM  Assembler source for storage initialization
  89.    IK0PRO.ASM  Assembler source for generic routines
  90.  
  91.    If you are installing CICS Kermit in CICS/VSE, you will also need the
  92.    following files.
  93.  
  94.                         V S E   o n l y
  95.    IKXTRN.ASM  Assembler source for the update translation utility
  96.  
  97.    If you are installing CICS Kermit in CICS/MVS, you probably already
  98.    have the materials necessary for installing TSO Kermit on your
  99.    system.  If you do not, you will also need the following files.
  100.  
  101.                         M V S   o n l y
  102.    IKTDYN.ASM  Assembler source for DYNALC subroutine
  103.    IKTGUP.ASM  Assembler source for MVS-specific part of GUPI
  104.    IKTGUP.HLP  GUPI help file, TSO HELP format
  105.    IKTKER.INS  Kermit-TSO installation instructions
  106.    IKTMAC.ASM  Assembler source for TSO-specific macros
  107.    IK0GUP.ASM  Assembler source for generic update program GUPI
  108.  
  109.    The following files are not necessary for installation, but may be of
  110.    some interest.
  111.  
  112.    IKCACT.ASM  Assembler source for optional accounting exit routine
  113.    IKXDYN.HLP  Specifications for I/O drivers
  114.    IKXHDR.MSS  Scribe source for producing IKXKER.DOC
  115.    IKXKER.ANN  Text of Kermit-CICS announcement for current version
  116.    IKXKER.LPT  Paged equivalent of IKXKER.DOC
  117.    IKXKER.MSS  Scribe source for CICS part of IKXKER.DOC
  118.    IKXKER.PS   PostScript equivalent of IKXKER.DOC
  119.    IK0AAA.HLP  Kermit-370 implementation notes, supported environments
  120.    IK0CON.HLP  Notes on supporting other terminal controllers
  121.    IK0KER.ANN  Text of generic Kermit-370 4.2 announcement
  122.    IK0KER.MSS  Scribe source for generic part of IKXKER.DOC
  123.    IK0KER.UPD  Update history for Kermit-370
  124.    IK0POR.HLP  Notes on porting Kermit-370 to other systems
  125.    IK0VER.FOR  Comparison program for generating update decks
  126.  
  127. 3) Rename and reformat, if necessary, the source files on disk.  Collect
  128.    all the source files (those with extensions of ".ASM") in your disk
  129.    area using names as shown above, and make sure that each one has
  130.    RECFM=FB,LRECL=80, and that all have the same block size.  Under VSE,
  131.    the file extensions for the sources should be changed to ".A".  You
  132.    will also need IKXKER.UPD, and any local updates or optional updates
  133.    chosen from IKXKER.BWR should also be collected into one or more
  134.    files for application to the source; the JCL given below (both for
  135.    VSE and MVS) uses the name IKXKER.LCLUPD as an example for such
  136.    optional updates.  You may have as many separate files of updates
  137.    as you wish.
  138.  
  139. 4) Define a VSAM KSDS in your CICS to hold Help and TAKE files.  It
  140.    should have the following attributes:
  141.  
  142.        DEFINE CLUSTER DATA( KEYS(21 0) RECSZ(80 256) )
  143.  
  144.        DFHFCT TYPE=DATASET,DATASET=KERMFSF,ACCMETH=VSAM,
  145.               RECFORM=(VARIABLE,BLOCKED),SERVREQ=(READ,ADD,DELETE)
  146.  
  147.    Note: in older versions of CICS, the last parameter would be
  148.  
  149.               SERVREQ=(GET,NEWREC,DELETE)
  150.  
  151.    Copy IKXKER.HLP into KERMFSF using VSAM REPRO so that Kermit-CICS's
  152.    built-in HELP subcommand can find it.  This has the side effect of
  153.    initializing the KSDS.
  154.  
  155.    Special note: with version 4.2.4 of Kermit-CICS, the key size grew
  156.    from 17 to 21.  This requires that the KSDS, if already installed,
  157.    be recreated when migrating to 4.2.4.  If the old KSDS contains any
  158.    files other than the Help files, they can be backed up and reinserted
  159.    into the new KSDS by something like the following procedure.
  160.  
  161.    a) Copy the entire KSDS to a sequential file using VSAM REPRO.
  162.  
  163.    b) Remove all the Help files (all lines with 0000 in columns 1-4 and
  164.       the word HELP somewhere within columns 5-12).  If there are no
  165.       lines left, the KSDS contained only the original Help files.
  166.  
  167.    c) Insert four blanks at column 5 in all the remaining lines of the
  168.       sequential file, moving everything over to make room, and save the
  169.       result.
  170.  
  171.    d) Merge the saved file with IKXKER.HLP and sort on the key (columns
  172.       1-21).  Use this sorted file to load the KSDS instead of the
  173.       "vanilla" IKXKER.HLP.
  174.  
  175.    The most comprehensive documentation is the pair of chapters of the
  176.    Kermit User's Guide dealing with CICS, namely, the generic Kermit-370
  177.    chapter and the CICS-specific one.  These two are bundled together in
  178.    IKXKER.DOC and also in IKXKER.PS; the PostScript is suitable only for
  179.    printing, but the DOC file could also be stored wherever you keep
  180.    online documentation files, renamed appropriately.
  181.  
  182. 5) The "true" source for Kermit consists of the concatenation of the
  183.    individual ASM modules plus a number of updates found in IKXKER.UPD.
  184.    The method of applying these updates depends on the operating system.
  185.    Also, it depends on the decision of whether to support Japanese Kanji
  186.    text translation.  IK0KAN.ASM is optional.  Including it adds about
  187.    32 Kbytes to the Kermit program.
  188.  
  189.                         V S E   o n l y
  190.    The translator program IKXTRN converts the update information in
  191.    IKXKER.UPD into directives for the library maintenance utility LIBR
  192.    and submits a batch job to apply the updates.  The following JCL
  193.    assembles, links, and runs IKXTRN for that purpose.  In order to
  194.    avoid making assumptions about the type of scratch disk available,
  195.    IKXTRN and the JCL are set up to punch a cascading series of jobs
  196.    into the POWER internal reader, with input data taken from SYSIPT and
  197.    output written to SYSPCH.  You must tailor the job to your site,
  198.    primarily by filling in the variables denoted in the JCL by lower-
  199.    case words enclosed in angle brackets "<>".  Some of these variables
  200.    are self-explanatory, but others are described in some detail below.
  201.    Note: in the following JCL, the normal system libraries are assumed
  202.    to be universally searchable and are not explicitly mentioned.
  203.  
  204.    <sliname>
  205.        Since some sites may require additional JCL to complete the
  206.        information normally placed in the standard label area, provision
  207.        is made for including local JCL via POWER 'SLI' statements at
  208.        appropriate places in the distributed JCL.  If such supplemental
  209.        JCL is not required, statements with the <sliname> variable may
  210.        be deleted from the JCL.
  211.  
  212.    <class>
  213.        Replace this variable with the designation of the partition you
  214.        want each job to run in.
  215.  
  216.    <lst specs>
  217.        Replace this variable with the POWER LST card information needed
  218.        to route SYSLST output according to local custom.
  219.  
  220.    <lib.sublibn>
  221.        Several versions of this variable occur in the JCL.  When "n" has
  222.        the same value for two different occurrences, both occurrences
  223.        must identify the same sublibrary.  In fact, you may use the same
  224.        sublibrary for more than one "n"; the only distinction that
  225.        absolutely must be kept is between n=0 and n=1.  The following
  226.        values of "n" are defined:
  227.  
  228.        0 - The base library for unmodified Kermit Source.
  229.        1 - The work library for modified Kermit Source.
  230.        2 - The sublibrary where IKXTRN.A is stored.
  231.        3 - The sublibrary where IKXUPD.UPD is stored.
  232.        4 - The sublibrary where the Kermit phase is to be cataloged.
  233.  
  234.    <phasename>
  235.        Replace this variable with the phase name to be given Kermit,
  236.        consistent with local CICS naming conventions.  KERMIT is a
  237.        good choice.
  238.  
  239.    <v.r>
  240.        Replace this with the current CICS release number at your site.
  241.  
  242. * $$ JOB JNM=<jobname>,CLASS=<n>,DISP=D
  243. * $$ LST <lst specs>
  244. * $$ PUN DISP=I,CLASS=<n>
  245. // JOB <jobname> SUBMIT KERMIT UPDATES TO IKXTRN PROGRAM
  246. * $$ SLI <sliname>
  247. // OPTION LINK,NODUMP,DECK
  248. // EXEC ASSEMBLY
  249.    PUNCH '* $$ LST <lst specs>'
  250.    PUNCH '* $$ PUN DISP=I,CLASS=<n>'
  251.    PUNCH '// JOB IKXTRN CONVERT KERMIT UPDATES TO VSE LIBR'
  252.    PUNCH '* $$ SLI <sliname>'
  253.    PUNCH '   LIBDEF SOURCE,SEARCH=<lib.sublib2>'
  254.    PUNCH '// OPTION LINK,NODUMP'
  255.    PUNCH '// EXEC ASSEMBLY,SIZE=256K'
  256.    PUNCH '   COPY IKXTRN'
  257.    PUNCH '/*'
  258.    PUNCH '// EXEC LNKEDT,SIZE=128K'
  259.    PUNCH '// EXEC ,SIZE=128K'
  260.    PUNCH 'BASELIBR=<lib.sublib0>'
  261.    PUNCH 'WORKLIBR=<lib.sublib1>'
  262.    PUNCH 'LOCALLST=<lst specs>'
  263.    PUNCH 'LOCALSLI=<sliname>'   (optional)
  264.    PUNCH '00001000=IK0DOC.A'
  265.    PUNCH '00300000=IK0MAC.A'
  266.    PUNCH '00800000=IKXMAC.A'
  267.    PUNCH '01400000=IK0DEF.A'
  268.    PUNCH '01500000=IK0MAI.A'
  269.    PUNCH '01800000=IK0COM.A'
  270.    PUNCH '03000000=IK0CMD.A'
  271.    PUNCH '05000000=IKXUTL.A'
  272.    PUNCH '06995000=IK0KAN.A'      (optional)
  273.    PUNCH '07000000=IK0PRO.A'
  274.    END
  275. /*
  276. // EXEC LIBR
  277.    ACCESS SUBLIB=<lib.sublib3>
  278.    PUNCH IKXKER.UPD     FORMAT=NOHEADER EOF=NO
  279.    PUNCH IKXKER.LCLUPD  FORMAT=NOHEADER EOF=NO
  280. /*
  281. // EXEC ASSEMBLY
  282.    PUNCH '/*'
  283.    PUNCH '/&&'
  284.    PUNCH '* $$ EOJ'
  285.    END
  286. /*
  287. /&
  288. * $$ EOJ
  289.  
  290.    When the foregoing job has completed successfully, the updated Kermit
  291.    source modules will be found in the <lib.sublib1> sublibrary, where
  292.    they can be kept either until the installation is complete or until
  293.    the next installation.  To assemble and link Kermit, the following
  294.    JCL should be run.  Tailoring is the same as for the update job,
  295.    including the possibility of removing IK0KAN if desired.
  296.  
  297. * $$ JOB JNM=<jobname>,CLASS=<n>,DISP=D
  298. * $$ LST <lst specs>
  299. * $$ PUN DISP=I,CLASS=<n>
  300. // JOB LEVEL1 KERMIT TRANSLATE/ASSEMBLE/LINK
  301. * $$ SLI <sliname>
  302. // OPTION DECK
  303. // EXEC ASSEMBLY
  304.  PUNCH '* $$ LST <lst specs>'
  305.  PUNCH '* $$ PUN DISP=I,CLASS=<n>'
  306.  PUNCH '// JOB LEVEL2 KERMIT TRANSLATE/ASSEMBLE/LINK'
  307.  PUNCH '* $$ SLI <sliname>'
  308.  PUNCH '// OPTION DECK'
  309.  PUNCH '// EXEC ASSEMBLY'
  310.  PUNCH ' PUNCH ''* $$ LST <lst specs>'''
  311.  PUNCH ' PUNCH ''// JOB LEVEL3 KERMIT TRANSLATE/ASSEMBLE/LINK'''
  312.  PUNCH ' PUNCH ''* $$ SLI <sliname>'''
  313.  PUNCH ' PUNCH ''// LIBDEF *,SEARCH=<lib.sublib1>'''
  314.  PUNCH ' PUNCH ''// OPTION CATAL,SYSPARM=''''<v.r>'''''''
  315.  PUNCH ' PUNCH ''   PHASE <phasename>,*'''
  316.  PUNCH ' PUNCH ''   INCLUDE DFHEAI'''
  317.  PUNCH ' PUNCH ''// EXEC ASSEMBLY'''
  318.  PUNCH ' END'
  319.  PUNCH '/*'
  320.  PUNCH '// EXEC DFHEAP1$,SIZE=384K'
  321.  PUNCH '* ASM XOPTS(NOPROLOG,NOEPILOG)'
  322.  END
  323. /*
  324. // EXEC LIBR
  325.    ACCESS SUBLIB=<lib.sublib1>
  326.    PUNCH IK0DOC.A FORMAT=NOHEADER EOF=NO
  327.    PUNCH IK0MAC.A FORMAT=NOHEADER EOF=NO
  328.    PUNCH IKXMAC.A FORMAT=NOHEADER EOF=NO
  329.    PUNCH IK0DEF.A FORMAT=NOHEADER EOF=NO
  330.    PUNCH IK0MAI.A FORMAT=NOHEADER EOF=NO
  331.    PUNCH IK0COM.A FORMAT=NOHEADER EOF=NO
  332.    PUNCH IK0CMD.A FORMAT=NOHEADER EOF=NO
  333.    PUNCH IKXUTL.A FORMAT=NOHEADER EOF=NO
  334.    PUNCH IK0KAN.A FORMAT=NOHEADER EOF=NO
  335.    PUNCH IK0PRO.A FORMAT=NOHEADER EOF=NO
  336. /*
  337. // EXEC ASSEMBLY
  338.  PUNCH '/*'
  339.  PUNCH '// EXEC ASSEMBLY'
  340.  PUNCH ' PUNCH ''/*'''
  341.  PUNCH ' PUNCH ''// LIBDEF *,CATALOG=<lib.sublib4>'''
  342.  PUNCH ' PUNCH ''// EXEC LNKEDT,SIZE=128K'''
  343.  PUNCH ' PUNCH ''/*'''
  344.  PUNCH ' PUNCH ''/&&&&'''
  345.  PUNCH ' PUNCH ''* $$ EOJ'''
  346.  PUNCH ' END'
  347.  PUNCH '/*'
  348.  PUNCH '/&&'
  349.  PUNCH '* $$ EOJ'
  350.  END
  351. /*
  352. /&
  353. * $$ EOJ
  354.  
  355.                         M V S   o n l y
  356.    The Generic Update Program for IBM-370 (GUPI) handles standard update
  357.    information in the format found in IKXKER.UPD.  Like Kermit itself,
  358.    GUPI is composed of a generic part and a system-specific part.  The
  359.    former consists of IK0GUP.ASM plus parts of IK0MAC.ASM.  There is,
  360.    however, no CICS version of GUPI, and if your CICS runs under MVS,
  361.    you must use the MVS (TSO) GUPI.  See the instructions in IKTKER.INS
  362.    for creating MVS GUPI if it has not already been installed in
  363.    connection with TSO Kermit.  The MVS- and TSO-specific parts of GUPI
  364.    consist of IKTGUP.ASM plus some macros from IKTMAC.ASM.
  365.  
  366.    The following batch job uses GUPI to apply the available updates to
  367.    Kermit and then creates the executable load module KERMIT.  Although
  368.    the job is as generic as possible, there may be local variations.
  369.    You must tailor the job to your site by
  370.    (a) supplying an appropriate JOB card (the JOB card should insure, if
  371.        necessary, a region of at least 2M to allow execution of the
  372.        assembler and GUPI),
  373.    (b) changing the string "<user>" into the top-level qualifier of your
  374.        disk area and "<prefix>" into the top level for CICS,
  375.    (c) selecting the proper CICS macro library name and inserting the
  376.        current CICS release number in the definition of proc KXASM,
  377.    (d) changing the string "<CICSlib>" into the name of the library
  378.        containing the CICS command-level translator (or removing the
  379.        STEPLIB from the KXASM.TRN step),
  380.    (e) changing, if necessary, the name of the assembler, perhaps to
  381.        IFOX00, and selecting the right DDNAME for the object output,
  382.    (f) specifying, if necessary, a generous print limit to allow the
  383.        13,000 or more lines generated by the job,
  384.    (g) un-commenting, if desired, the reference to the optional local
  385.        update data set for input to GUPI (in step KRMUPD) or adding
  386.        any other desired update data sets to the concatenation under
  387.        ddname SYSIN,
  388.    (h) un-commenting, if desired, the references to the optional Kermit
  389.        accounting exit routine KACCT,
  390.    (i) commenting out, if desired, the reference to IK0KAN.ASM,
  391.    (j) selecting a name for the Kermit program and modifying the NAME
  392.        statement, if necessary, in the last step, and
  393.    (k) choosing the proper block size for SYSLIN on the KRMLNK step, if
  394.        necessary, to be as large as that of the Kermit object library.
  395.  
  396. //JOBLIB   DD DSN=<user>.KERMIT.LOAD,DISP=SHR
  397. //* INPUT:  <user>.IK*.ASM, <user>.IKXKER.UPD, <user>.KERMIT.LOAD
  398. //* OUTPUT: <user>.KERMIT.CICS.LOAD, <user>.KERMIT.CICS.OBJ
  399. //************************
  400. //* Note: CICSREL must be updated appropriately, e.g., 1.7, 2.1, etc
  401. //KXASM  PROC PRM=,MEMBER=NULL,CICSREL='v.r'
  402. //TRN    EXEC PGM=DFHEAP1$,REGION=1M,PARM='NOPROLOG,NOEPILOG'
  403. //STEPLIB  DD DSN=<CICSlib>,DISP=SHR
  404. //SYSIN    DD DSN=&SOURCE,DISP=(OLD,PASS)
  405. //SYSPRINT DD SYSOUT=*
  406. //SYSPUNCH DD DSN=&SYSCIN,DISP=(NEW,PASS),UNIT=SYSDA,
  407. //            SPACE=(TRK,(30,30)),DCB=BLKSIZE=6160
  408. //ASM    EXEC PGM=IEV90,REGION=1M,
  409. //            PARM='RENT,NODECK,OBJECT,SYSPARM(&CICSREL),&PRM'
  410. //SYSIN    DD DSN=&SYSCIN,DISP=(OLD,DELETE)
  411. //SYSLIB   DD DSN=<prefix>.CICS.MACLIB,DISP=SHR
  412. //SYSLIN   DD DSN=<user>.KERMIT.CICS.OBJ(&MEMBER),DISP=(OLD,PASS)
  413. //SYSPRINT DD SYSOUT=*
  414. //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,2))
  415. //       PEND
  416. //************************
  417. //KXLINK PROC
  418. //LNK    EXEC PGM=IEWL,REGION=1M,PARM='REUS,LET'
  419. //SYSLIB   DD DSN=<prefix>.CICS.LOADLIB,DISP=SHR
  420. //SYSLMOD  DD DSN=<user>.KERMIT.CICS.LOAD,DISP=SHR
  421. //SYSPRINT DD SYSOUT=*
  422. //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(5,2))
  423. //       PEND
  424. //************************
  425. //*   Create updated Kermit ...
  426. //KRMUPD EXEC PGM=GUPI,REGION=2M
  427. //SYSIN    DD DSN=<user>.IKXKER.UPD,DISP=SHR
  428. //*        DD DSN=<user>.IKXKER.LCLUPD,DISP=SHR  Optional
  429. //SYSPRINT DD SYSOUT=*
  430. //SYSUT1   DD DSN=<user>.IK0DOC.ASM,DISP=SHR
  431. //         DD DSN=<user>.IK0MAC.ASM,DISP=SHR
  432. //         DD DSN=<user>.IKXMAC.ASM,DISP=SHR
  433. //         DD DSN=<user>.IK0DEF.ASM,DISP=SHR
  434. //         DD DSN=<user>.IK0MAI.ASM,DISP=SHR
  435. //         DD DSN=<user>.IK0COM.ASM,DISP=SHR
  436. //         DD DSN=<user>.IK0CMD.ASM,DISP=SHR
  437. //         DD DSN=<user>.IKXUTL.ASM,DISP=SHR
  438. //         DD DSN=<user>.IK0KAN.ASM,DISP=SHR        (optional)
  439. //         DD DSN=<user>.IK0PRO.ASM,DISP=SHR
  440. //SYSUT2   DD DSN=&&UPDSRC,DISP=(NEW,PASS),SPACE=(CYL,(1,1)),
  441. //            DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160),UNIT=SYSDA
  442. //*
  443. //* KACASM EXEC KXASM,SOURCE='<user>.KACCT.ASM',MEMBER=KACCT
  444. //KRMASM EXEC KXASM,SOURCE='&&UPDSRC',MEMBER=KERMIT,COND=(0,LT,KRMUPD)
  445. //KRMLNK EXEC KXLINK,COND=((0,LT,KRMUPD),(4,LT,KRMASM.ASM))
  446. //SYSLIN   DD DSN=<prefix>.CICS.MACLIB(DFHEILIA),DISP=SHR
  447. //*            DCB=BLKSIZE=1680              In case BLKSIZE is smaller
  448. //         DD DSN=<user>.KERMIT.CICS.OBJ(KERMIT),DISP=SHR
  449. //*         DD DSN=<user>.KERMIT.CICS.OBJ(KACCT),DISP=SHR  Optional
  450. //         DD *
  451.          NAME KERMIT(R)
  452. //
  453.  
  454.    Note 1: If you prefer, you may elect to keep the source files in a
  455.    PDS.  If so, be sure to use RECFM=FB,LRECL=80.  Also change the DSN
  456.    references in the preceding job accordingly.
  457.  
  458.    Note 2: The procedure given above assumes the availability of sources
  459.    contemporaneous with this file, i.e., release 4.2 of Kermit-370.
  460.  
  461.    Note 3: The procedure given above preserves the sequence numbers in
  462.    columns 73-80 of the source files.  If you elect to use an editor to
  463.    merge files, be absolutely sure that you don't inadvertently lose the
  464.    original sequence numbers (something editors are prone to do).
  465.  
  466. 6) You must add Kermit to the PPT and to the PCT to allow Kermit to be
  467.    run as a transaction under CICS.  Here are suggested entries.  The
  468.    program name may be something other than KERMIT, but it must agree
  469.    with the name used in the installation job above.
  470.  
  471.          DFHPPT TYPE=ENTRY,PROGRAM=KERMIT,PGMLANG=ASSEMBLER
  472.          DFHPCT TYPE=ENTRY,PROGRAM=KERMIT,TRANSID=KERM,DUMP=NO
  473.  
  474. 7) If you plan to have a global Kermit initialization file (common to
  475.    all users), you must define an extra-partition input TD queue called
  476.    KSYS to contain the initialization subcommands.  The necessary DCT
  477.    entry should have a definition something like this:
  478.  
  479.          DFHDCT TYPE=SDSCI,DSCNAME=KSYSNIT,TYPEFLE=INPUT,
  480.                RECFORM=VARBLK,RECSIZE=84,BLKSIZE=nnnn
  481.          DFHDCT TYPE=EXTRA,DESTID=KSYS,DSCNAME=KSYSNIT
  482.  
  483.    where "nnnn" is any suitable block size.  The DSCNAME value refers to
  484.    the DOS/VSE DLBL name or the MVS DD name that defines the data set;
  485.    it may be any suitable value, as long as both DFHDCT entries match.
  486.    Be sure the data set actually exists, even if it contains no more
  487.    than a comment line, such as:
  488.  
  489.       * CICS Kermit global initialization file.
  490.  
  491.    You may add Kermit subcommands to the file as needed.
  492.  
  493. 8) To run Kermit-CICS, simply type "KERMIT" or "KERM" to CICS.  Also,
  494.    Kermit may be executed by other programs non-interactively.
  495.  
  496.                        * * Data Security * *
  497.  
  498. If you wish to use the optional exits for data security, you must
  499. first code the routine(s) according to the needs at your site and then
  500. create the object(s) and link explicitly with Kermit.  There are three
  501. separate exit routines that may be included, all with the same Type-I
  502. OS linkage conventions:
  503.  
  504.    R13 -> 18-word save area,
  505.    R14 -> return location,
  506.    R15 -> called entry point,
  507.    R1 -> parameter list.
  508.  
  509. In each case, the exit routine is called immediately before Kermit is to
  510. perform some possibly forbidden task, and the return code (in R15) tells
  511. Kermit whether to proceed.  A zero value indicates permission, and any
  512. non-zero value forbids the task.  If a given routine is not linked with
  513. Kermit, the effect is the same as if the return code were always zero.
  514. The three exit routines are summarized below.
  515.  
  516.   Exit    Parameter   Explanation
  517.   ------  ----------- -------------------------------------------------
  518.  
  519.   KVALID  FAB         FABFNAM has the file name, FABFLGS the type of
  520.                       file, and FABCOMM the operation (See FABD macro).
  521.  
  522.      Possible operations are CWD, DELETE, OPEN I, OPEN O, and TEST.
  523.      KVALID must decide whether the specified access is allowed.
  524.      Note: the parameter list consists of the FAB itself, rather than
  525.      a pointer to it.
  526.  
  527.   KHIDE  ->descriptor TSUTE or DCT or KFSBLK for a queue/file
  528.          ->FABFLGS    flags indicating the type of data object
  529.  
  530.      KHIDE must decide whether the name of the object in question may
  531.      be revealed to the user.  This exit routine is invoked during
  532.      execution of the DIR subcomand with any wildcard specification.
  533.      A non-zero return code indicates that the very existence of the
  534.      file is secret.  However, if the user supplies the exact name,
  535.      KHIDE is not called, and DIR will supply the associated
  536.      information.
  537.  
  538.   KHOST  ->pgm name   8-byte string (name of program to be invoked)
  539.          ->command    string to be passed to the program in COMMAREA
  540.          ->length     (fullword) length of command string in bytes
  541.  
  542.      KHOST must decide whether the named program may be invoked with
  543.      the given string.
  544.  
  545.                       * * Userid Routine * *
  546.  
  547. There is a fourth optional exit routine which may be used to set the
  548. userid for the purposes of selecting the default directory for I/O to
  549. filetype "TAKE".  To use this exit routine, you must set the global
  550. symbol &USER to the value 'OTHER' in macro SSYMS (see IKXKER.BWR for
  551. the update to accomplish that).
  552.  
  553.   Exit    Parameter   Explanation
  554.   ------  ----------- -------------------------------------------------
  555.  
  556.   KUSER   KUSERID     KUSERID is a eight-character string to be filled
  557.                       with the default file directory name.
  558.  
  559.      KUSER must fill the string (and pad with blanks, if necessary).
  560.      There is no provision for any error conditions.  KUSER will be
  561.      called only once at the beginning of execution.  In addition to
  562.      the explicit parameter block (the four-byte string), there is an
  563.      implicit passing of the command-level data storage area via R11.
  564.  
  565.      Note: the userid must not begin with either an apostrophe or an
  566.      asterisk.
  567.  
  568.                     * * Accounting Routine * *
  569.  
  570. If you wish to use the optional accounting exit routine with Kermit,
  571. you must create the object for it and link it explicitly with Kermit.
  572. The sample currently available was written for CMS and must be adapted
  573. to run under CICS.  Any user who does so is urged to contribute the
  574. CICS version for inclusion in the Kermit distribution under the name
  575. IKXACT.ASM.  Even when such a CICS-specific sample is available, you
  576. should examine the source and customize it to your installation's needs
  577. before using it.  The tailored version is assumed to be called KACCT.ASM
  578. in the relevant lines of MVS JCL above (currently all commented out).
  579.  
  580.                        * * Configuration * *
  581.  
  582. The IBM mainframe and its communications front end (3705, 7171, etc.)
  583. usually require that parity be used by any asynchronous ASCII device
  584. that wishes to communicate with it.  Exactly which kind of parity is
  585. site-dependent.  At Columbia, the 3705 requires Mark parity, and the
  586. 7171 requires Even parity.  Make sure your users know to use the
  587. appropriate parity setting, as well as any other settings required for
  588. IBM mainframe communication (see p.36-39 of the Kermit book).
  589.  
  590. For linemode transfers, the ASCII/EBCDIC translation in the front end is
  591. a key factor.  Kermit-CICS uses an ASCII/EBCDIC translation table which
  592. conforms to the one given in the IBM System/370 Reference Summary.  If
  593. your site's translation table is incompatible with the one Kermit uses,
  594. then enter the appropriate SET ATOE/ETOA/TATOE/TETOA subcommands in the
  595. system KERMINI file.  As long as the system tables are invertible with
  596. respect to the printable ASCII characters (even if the A-to-E and E-to-A
  597. tables are not the inverses of each other), the SET subcommands can
  598. compensate.  However, if your system's ASCII/EBCDIC tables are not
  599. invertible, Kermit will not and cannot work unless you change your
  600. system's tables.  Refer to the generic Kermit-370 chapter of the User's
  601. Guide for a step-by-step customization procedure (see the section on
  602. translation tables).
  603.  
  604. Kermit-CICS operation is possible for many types of protocol converters;
  605. it requires only that the converter have some kind of transparent mode.
  606. Be sure the converter is configured so that the graphics or transparent
  607. mode, whatever it is called, is enabled.  See IK0AAA.HLP for a list of
  608. front ends that are known to work and for a collection of notes and
  609. special warnings about some of them.  Some further installation details
  610. follow for specific devices.
  611.  
  612. When CICS Kermit is to be used with a 7171, make sure the 7171 is set up
  613. with its "keyboard lock delay" parameter set to 0.  Otherwise, the
  614. "terminal" will hang whenever CICS Kermit clears the screen.  This
  615. happens consistently when the parameter is set to 10, and not at all
  616. when set to 0.  For numbers in between, the higher the number, the more
  617. it happens.
  618.  
  619. There is another problem in the 7171 that can cause Kermit file
  620. transfers to abort after a flurry of retransmissions if XON/XOFF flow
  621. control is used by the receiving Kermit, or even by hardware in between
  622. the 7171 and the receiver.  To prevent this problem, set the 7171 flags
  623. so that XOFF is not a valid terminator of a transparent read.  See page
  624. 4-20 of "IBM 7171 Reference Manual and Programming Guide" (IBM
  625. publication number GA27-0021).
  626.  
  627. Kermit operation is possible through an IBM 3708 front end in two
  628. different configurations.  In the first, the terminal line must be set
  629. for either "protocol enveloping" or "dynamic" mode, and a session must
  630. be set for line-at-a-time operation for Kermit to work.  Other important
  631. details of the terminal configuration are: (1) the terminal must be
  632. specified as a TWX device, (2) the SSCP format should be set to USSNTO,
  633. (3) the terminal type ID should be set to 05, (4) the line should be set
  634. for 8, or possibly 7, data bits and 1 stop bit, (5) there should be no
  635. "read prompt", and (6) the so-called "alternate" translation table
  636. (number 3) should be selected.  Kermit-CICS may also need to be
  637. configured because some models of the 3708 (or some environments) do not
  638. pass the normal packet character SOH (code 1, CTRL-A).  A suitable
  639. substitute is HT (code 9, CTRL-I).  Alternatively, or additionally, it
  640. may help to set the 3708 "interface type" to 0.
  641.  
  642. The second possible 3708 configuration is "protocol conversion" mode and
  643. makes use of the FULLSCREEN type in Kermit, which is also suitable for
  644. many other kinds of protocol converter.  The basic setup consists of the
  645. following Kermit subcommands.
  646.  
  647.      .... mainframe .....        ....... PC .........
  648.      SET CONTROLLER FULL         set send start 62
  649.      SET RECEIVE START 62        set receive start 62
  650.      SET SEND START 62           set block b
  651.      SET BLOCK B                 set handshake none
  652.      SET HANDSHAKE 0
  653.  
  654. The 62's (Greater-than sign) may be replaced by some other decimal code
  655. for a printable character.  For best results, choose a character that
  656. seldom appears in the files you will be transferring.  In particular,
  657. avoid the Control, Eighth-bit, and Repeat prefixes.  Packet sizes are
  658. automatically restricted by Kermit-CICS, so you needn't set them unless
  659. conditions require packets shorter than the default (77).  Flow control
  660. may be needed to keep up with the data rate on some equipment.  The
  661. block check type should be set to "B" only if the protocol converter is
  662. overzealous in optimizing the data stream -- there are hazards in using
  663. any type other than "1" because of all the packet echoing.  Refer to
  664. IK0AAA.HLP for such details.  Note that the translation of characters
  665. imposes the same setup requirements on FULLSCREEN mode as on the
  666. traditional TTY mode (linemode).  See the DOC.
  667.  
  668. Kermit-CICS supports file transfers through the IBM 3174 AEA with B2 or
  669. higher microcode, but support is restricted to terminals with the ASCII
  670. Graphics capability in three ways that may require compensating
  671. installation:
  672.  
  673. a) The terminal type must be defined in the 3174 to support graphics
  674.    (only the built-in VT241 and Tektronix 4205 types plus suitable
  675.    user-defined terminal types).  IBM's AEA Reference describes how
  676.    to set up terminal tables.
  677.  
  678. b) The line must be defined without a Host Addressable Printer.  This
  679.    restriction may not apply if the AEA microcode is at level B4.0 or
  680.    higher.
  681.  
  682. c) If the 3174 is owned by VTAM, the connection must be made with a
  683.    logmode that allows the Read Partition Query (such as M2SDLCQ).
  684.